package com.ruoyi.wvp.domain;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseModel;

import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import com.baomidou.mybatisplus.annotation.TableName;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 读卡器对象 wvp_card_reader
 * 
 * @author ruoyi
 * @date 2024-07-29
 */
@Schema(description = "读卡器对象")
@TableName("wvp_card_reader")
@Setter
@Getter
@ToString
public class CardReader extends BaseModel{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @Schema(title = "$column.columnComment")
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 设备序列号 */
    @Schema(title = "设备序列号")
    @Excel(name = "设备序列号")
    @NotBlank
    private String serialNumber;
    @Excel(name = "运行状态")
    @TableField(exist = false)
    private String deviceStatusStr;

    /** 设备品牌 */
    @Schema(title = "设备品牌")
    @Excel(name = "设备品牌")
    @NotBlank
    private String deviceBrand;
    /** 设备型号 */
    @Schema(title = "设备型号")
    @Excel(name = "设备型号")
    @NotBlank
    private String deviceModel;
    /** 设备名称 */
    @Schema(title = "投放点名称")
    @Excel(name = "投放点名称")
    @NotBlank
    private String deviceName;

    /** 物理地址 */
    @Schema(title = "MAC地址")
    @Excel(name = "MAC地址")
    @NotBlank
    private String macAddress;


    /** 区名称 */
    @Schema(title = "辖区")
    @Excel(name = "辖区")
    @NotBlank
    private String areaName;
    /** 街道名称 */
    @Schema(title = "街道")
    @Excel(name = "街道")
    @NotBlank
    private String streetName;
    /** 社区 */
    @Schema(title = "社区")
    @Excel(name = "社区")
    @NotBlank
    private String community;
    /** 小区名称 */
    @Schema(title = "小区")
    @Excel(name = "小区")
    @NotBlank
    private String residentialName;
    /** 地址 */
    @Schema(title = "地址")
    private String address;
    /** 投放点 */
    @Schema(title = "投放点")
    private String placement;

    /** 设备状态 1 在线 0 离线 */
    @Schema(title = "运行状态")
    private Long deviceStatus;




    /** 登记时间 */
    @Schema(title = "登记时间")
    @Excel(name = "登记时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime registerTime;
    /**
     * 更新者
     */
    @Schema(title = "修改人")
    @Excel(name="修改人")
    private String updateBy;

    /**
     * 更新时间
     */
    @Schema(title = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name="修改时间")
    @TableField(exist = false)
    private LocalDateTime editTime;
    /** 接入状态 */
    @Schema(title = "接入状态")
    @Excel(name = "接入状态")
    private Integer accessStatus;
    /** 接入时间 */
    @Schema(title = "接入时间")
    @Excel(name = "接入时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime accessTime;


    @Excel(name="备注")
    private String remark;

    /** 省份名称 */
    @Schema(title = "省份名称")
    private String proviceName;
    /** 省份编码 */
    @Schema(title = "省份编码")
    private String proviceCode;
    /** 市名称 */
    @Schema(title = "市名称")
    private String cityName;
    /** 市编号 */
    @Schema(title = "市编号")
    private String cityCode;

    /** 区编码 */
    @Schema(title = "区编码")
    private String areaCode;


    /** ip */
    @Schema(title = "ip")
    private String ip;

    /** 街道id */
    @Schema(title = "街道id")
    private String streetCode;

    //*社区id*/
    private String communityCode;
    /*小区ID*/
    private String residentialCode;

    /*是否推送 1 推送 0 不推送*/
    private Integer pushType;

}
